//
//  WaybillListVC.m
//  ReceiptDelivery
//
//  Created by 吕晶 on 2020/10/26.
//  Copyright © 2020 吕晶. All rights reserved.
//

#import "WaybillListVC.h"
#import "WaybillMainModel.h"
#import "WaybillListCell.h"
#import "MyShipmentDetailVC.h"

@interface WaybillListVC ()<UITableViewDelegate,UITableViewDataSource> {
    int page;
}

@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) NSMutableArray *dataArray;

@end

@implementation WaybillListVC

-(NSMutableArray *)dataArray {
    if (!_dataArray) {
        _dataArray = [NSMutableArray array];
    }
    return _dataArray;
}

-(UITableView *)tableView {
    if (!_tableView) {
        _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, ScreenW, ScreenH - BottomHeight - NaviHeight - 40) style:UITableViewStyleGrouped];
        _tableView.backgroundColor = Color_backgroundColor;
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        __weak_self;
        _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
            __strong_self;
            strongSelf->page = 1;
            [strongSelf requestForList];
        }];
        _tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
            __strong_self;
            strongSelf->page++;
            [strongSelf requestForList];
        }];
        _tableView.ly_emptyView = [LYEmptyView emptyViewWithImageStr:@"img_occupy"
             titleStr:@""
            detailStr:@""];
    }
    return _tableView;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    page = 1;
    [self.view addSubview:self.tableView];
    [self requestForList];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshList) name:ReceiptDeliveryRefreshWoFaYunList object:nil];
}

- (void)refreshList {
    page = 1;
    [self requestForList];
}

- (void)requestForList {
    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
    if (self.type) {
        [dic setObject:@(self.type) forKey:@"status"];
    }
    [dic setObject:@(1) forKey:@"type"];
    [dic setObject:@(page) forKey:@"page"];
    [HttpRequest PostWithApi:ReceiptDeliveryMyShipmentList params:dic progress:^(NSProgress * _Nonnull progress) {

    } success:^(NSURLSessionDataTask * _Nonnull operation, id  _Nonnull responseObject, BOOL code, NSInteger errorCode) {
        if (code) {
            if (self->page == 1) {
                [self.dataArray removeAllObjects];
                self.dataArray = [WaybillMainModel mj_objectArrayWithKeyValuesArray:responseObject[@"list"]];
            }else {
                NSArray *array = [WaybillMainModel mj_objectArrayWithKeyValuesArray:responseObject[@"list"]];
                [self.dataArray addObjectsFromArray:array];
            }
            BOOL has_more = [responseObject[@"has_more"] boolValue];
            if (has_more) {
                self.tableView.mj_footer.hidden = NO;
            }else {
                self.tableView.mj_footer.hidden = YES;
            }
            [self.tableView reloadData];
        }
        [self.tableView.mj_header endRefreshing];
        [self.tableView.mj_footer endRefreshing];
    } fail:^(NSError * _Nonnull error) {
        [self.tableView.mj_header endRefreshing];
        [self.tableView.mj_footer endRefreshing];
    }];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.dataArray.count;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    WaybillListCell *cell = [WaybillListCell WaybillListCellWithTableView:tableView];
    WaybillMainModel *model = self.dataArray[indexPath.row];
    cell.model = model;
    __weak_self;
    cell.shouLiBlock = ^{
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:@"确定通过运单吗？" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            [weakself sureBill:model.wa_id];
        }];
        UIAlertAction *cancleAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
            
        }];
        [alert addAction:sureAction];
        [alert addAction:cancleAction];
        [weakself presentViewController:alert animated:YES completion:nil];
    };
//    __weak_self;
//    cell.operationBlock = ^{
//        if ([model.createType isEqualToString:@"2"]) {
//            //删除
//            UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:@"确定删除运单吗？" preferredStyle:UIAlertControllerStyleAlert];
//            UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//                [weakself deleteBill:model.wa_id];
//            }];
//            UIAlertAction *cancleAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
//
//            }];
//            [alert addAction:sureAction];
//            [alert addAction:cancleAction];
//            [self presentViewController:alert animated:YES completion:nil];
//        }else {
//            //确认
//            UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:@"确定通过运单吗？" preferredStyle:UIAlertControllerStyleAlert];
//            UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//                [weakself sureBill:model.wa_id];
//            }];
//            UIAlertAction *cancleAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
//
//            }];
//            [alert addAction:sureAction];
//            [alert addAction:cancleAction];
//            [self presentViewController:alert animated:YES completion:nil];
//        }
//    };
    return cell;
}

- (void)deleteBill:(NSString *)dp_id {
//    [HttpRequest PostWithApi:ReceiptDeliveryDeleteWoFaYun params:@{@"wa_id":dp_id} progress:^(NSProgress * _Nonnull progress) {
//
//    } success:^(NSURLSessionDataTask * _Nonnull operation, id  _Nonnull responseObject, BOOL code, NSInteger errorCode) {
//        if (code) {
//            [MBProgressHUD leShowSuccessHUDAddedTo:self.view message:@"删除成功"];
//            self->page = 1;
//            [self requestForList];
//        }
//    } fail:^(NSError * _Nonnull error) {
//
//    }];
}

//- (void)sureBill:(NSString *)dp_id {
//    [HttpRequest PostWithApi:ReceiptDeliverySureWoFaYun params:@{@"wa_id":dp_id} progress:^(NSProgress * _Nonnull progress) {
//
//    } success:^(NSURLSessionDataTask * _Nonnull operation, id  _Nonnull responseObject, BOOL code, NSInteger errorCode) {
//        if (code) {
//            [MBProgressHUD leShowSuccessHUDAddedTo:self.view message:@"确认成功"];
//            self->page = 1;
//            [self requestForList];
//        }
//    } fail:^(NSError * _Nonnull error) {
//
//    }];
//}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    WaybillListCell *cell = [WaybillListCell WaybillListCellWithTableView:tableView];
    WaybillMainModel *model = self.dataArray[indexPath.row];
    cell.model = model;
    return cell.height;
}

- (void)sureBill:(NSString *)wa_id {
    [HttpRequest PostWithApi:ReceiptDeliverySureMyShipment params:@{@"wa_id":wa_id} progress:^(NSProgress * _Nonnull progress) {

    } success:^(NSURLSessionDataTask * _Nonnull operation, id  _Nonnull responseObject, BOOL code, NSInteger errorCode) {
        if (code) {
            [MBProgressHUD leShowSuccessHUDAddedTo:self.view message:@"确认成功"];
//            [self refreshList];
            [[NSNotificationCenter defaultCenter] postNotificationName:ReceiptDeliveryRefreshWoFaYunList object:nil];
        }
    } fail:^(NSError * _Nonnull error) {

    }];
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    WaybillMainModel *model = self.dataArray[indexPath.row];
    MyShipmentDetailVC *vc = [MyShipmentDetailVC new];
    vc.wa_id = model.wa_id;
    [self.rt_navigationController pushViewController:vc animated:YES];
}

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    return [UIView new];
}

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0;
}

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenW, 10)];
    view.backgroundColor = Color_backgroundColor;
    return view;
}

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 10;
}

-(void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

@end
